package cn.edu.tjut.control;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import cn.edu.tjut.bean.AdminBean;
import cn.edu.tjut.bean.StudentBean;
import cn.edu.tjut.bean.TeacherBean;
import cn.edu.tjut.myUtils.MD5Util;
import cn.edu.tjut.myUtils.MyUtils;
import cn.edu.tjut.seriver.AdminService;
import cn.edu.tjut.seriver.StuService;
import cn.edu.tjut.seriver.TeaService;

@Controller
public class LoginControl {
	// 登录请求逻辑处理
	@Resource
	private AdminService adminService;
	@Resource
	private TeaService teaService;
	@Resource
	private StuService stuService;

	// 登录系统主界面
	@RequestMapping(value = "/logined.do")
	public String Logined(String txtPsw, Model model, HttpSession session, HttpServletRequest request,
			HttpServletResponse response) {
		// 获取用户登录的账号（ID）
		String loginAccount = request.getParameter("txtAccount");
		// 验证身份--管理员
		if (loginAccount.charAt(0) == 'a') {
			AdminBean adminB = new AdminBean();
			adminB.setAdminAccont(loginAccount);
			// 在数据库中查询该用户的信息
			AdminBean adminB2 = adminService.selectByAdminAccount(adminB.getAdminAccont());
			if (adminB2 == null) {
				// 设置缓存，在前台页面提示用户名或者密码输入错误
				session.setAttribute("ErroLog", "账号不存在！");
				// 返回到登录界面
				return "index";
			} else if (!txtPsw.equals(adminB2.getAdminPsw())) {
				// 验证密码是否正确
				// 设置缓存，在前台页面提示用户名或者密码输入错误
				session.setAttribute("ErroLog", "账号或者密码输入错误！");
				// 返回到登录界面
				return "index";
			} else {
				// 登录成功，进入系统主界面
				session.setAttribute("userA", adminB2);
				return "homePage/menuA";
			}
		} else if (loginAccount.charAt(0) == '1') {
			// 验证身份--实验老师
			TeacherBean teaB = new TeacherBean();
			teaB.setTeaId(MyUtils.obj2Long(loginAccount));
			// 在数据库中查询该老师信息
			TeacherBean teaB2 = teaService.selectByteaId(teaB.getTeaId());
			if (teaB2 == null) {
				// 设置缓存，在前台页面提示用户名或者密码输入错误
				session.setAttribute("ErroLog", "账号不存在！");
				// 返回到登录界面
				return "index";
			} else if (!MD5Util.MD5(txtPsw).equals(teaB2.getTeaPsw())) {
				// 验证密码是否正确
				// 设置缓存，在前台页面提示或者密码输入错误
				session.setAttribute("ErroLog", "账号或者密码输入错误！");
				// 返回到登录界面
				return "index";
			} else {
				// 登录成功，进入系统主界面
				session.setAttribute("userT", teaB2);
				return "homePage/menuT";
			}
		} else if (loginAccount.charAt(0) == '2') {
			// 验证身份--学生
			StudentBean stuB = new StudentBean();
			stuB.setStuId(MyUtils.obj2Long(loginAccount));
			// 在数据库中查询该学生信息
			StudentBean stuB2 = stuService.selectBystuId(stuB.getStuId());
			if (stuB2 == null) {
				// 设置缓存，在前台页面提示学号或者密码输入错误
				session.setAttribute("ErroLog", "学号不存在！");
				// 返回到登录界面
				return "index";
			} else if (!MD5Util.MD5(txtPsw).equals(stuB2.getStuPsw())) {
				// 验证密码是否正确
				// 设置缓存，在前台页面提示或者密码输入错误
				session.setAttribute("ErroLog", "学号或者密码输入错误！");
				// 返回到登录界面
				return "index";
			} else {
				// 登录成功，进入系统主界面
				session.setAttribute("userS", stuB2);
				return "homePage/menuS";
			}
		}
		return null;
	}
}
